Skip to content

Conversation

@JoshSEdwards
Copy link
Contributor

@JoshSEdwards JoshSEdwards commented Jan 6, 2026

Summary

  • add health/status endpoints: ping/health/color/metrics_prometheus, get_status/update_status
  • add zone endpoints: get_zone_details, list_zone_backend_ids, list_zone_changes_failure,
    list_deleted_zones
  • add record set endpoints: get_record_set_count, list_record_set_change_history,
    list_record_set_changes_failure
  • add ownership transfer helpers for record sets (request/approve/reject/cancel)
  • add group endpoints: get_group_change, list_group_valid_domains
  • add user endpoints: get_user, lock_user, unlock_user
  • add unit tests for all new endpoints

Files Touched

  • src/vinyldns/client.py, src/vinyldns/status.py
  • src/vinyldns/zone.py, src/vinyldns/record.py, src/vinyldns/membership.py
  • tests/test_health_status.py, tests/test_zone_extras.py
  • tests/test_record_extras.py, tests/test_membership_extras.py, tests/test_users.py

Manual Test Checklist

Prereqs:

  • VINYLDNS_HOST, VINYLDNS_ACCESS_KEY, VINYLDNS_SECRET_KEY set
  • Admin creds for status update, user lock/unlock, ACL rules, batch review
  • Sample IDs: zone_id, group_change_id, user_id/username, record set fqdn/type

Health & Monitoring:

  • ping returns PONG
  • health returns OK (no error)
  • color returns blue or green
  • metrics_prometheus returns non-empty text

Status:

  • get_status returns processingDisabled, color, keyName, version
  • update_status flips processingDisabled (admin)

Zone:

  • list_zone_backend_ids returns non-empty list
  • get_zone_details includes admin group ID/name
  • list_deleted_zones returns expected entries
  • list_zone_changes_failure returns entries (can be empty)

RecordSet:

  • get_record_set_count returns integer
  • list_record_set_change_history returns list for fqdn/type
  • list_record_set_changes_failure returns entries (can be empty)
  • ownership transfer request/approve/reject/cancel succeeds with valid record set and owner group
    IDs

Group:

  • list_group_valid_domains returns entries
  • get_group_change returns change details

User (admin):

  • get_user returns id/username/groups
  • lock_user returns Locked
  • unlock_user returns Unlocked

Automated Tests

  • python3 setup.py test

Add support for the following VinylDNS API endpoints:

Health & Status:
- ping, health, color, metrics_prometheus
- get_status, update_status

Zones:
- get_zone_details (with adminGroupId/adminGroupName)
- list_zone_backend_ids
- list_zone_changes_failure
- list_deleted_zones

Record Sets:
- get_record_set_count
- list_record_set_change_history
- list_record_set_changes_failure
- Ownership transfer: request, approve, reject, cancel

Groups:
- get_group_change
- list_group_valid_domains

Users:
- get_user
- lock_user, unlock_user

Also adds unit tests for all new endpoints.
@JoshSEdwards JoshSEdwards force-pushed the implement-missing-api-endpoints branch from 3dd389b to 565d2b5 Compare January 6, 2026 22:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant